Users typically design logic circuits using a computer with a schematic capture computer program or a hardware description language (HDL). The program allows the user to place symbols onto a computer screen and interconnect the symbols to indicate a circuit diagram, or to describe circuits and connections using textual description. The computer then captures the schematic diagram or logic design. Schematic capture and HDL entry are processes of converting a schematic drawing or text file generated by a user into a format which can be processed by a computer. Schematic capture and HDL software packages make it possible for a user to communicate the design to a computer conveniently. A schematic capture package typically converts the interconnected set of functional components to a net list (list of components and interconnections between these components) which can be further manipulated by other computer programs to perform a function desired by the user.
Typical schematic capture packages have included a library of primitive components, such as Boolean AND, XOR, flipflop, etc., which the user may place onto a computer display and interconnect with lines to form a logic design. However, users frequently think in terms of high-level functions to be performed, for example, counters, adders, registers and multiplexers. Entering a design directly in terms of the higher level logic operations the user intends to perform is more convenient and intuitive for a user than entering the logic design in terms of primitive AND, flipflop gates, etc.